home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 3: The Continuation / 17-Bit_The_Continuation_Disc.iso / amigan / amigan 10 / nuthouse < prev    next >
Text File  |  1994-01-27  |  4KB  |  127 lines

  1. ' ************************************************
  2. ' *                                              *
  3. ' *    NutHouse 9         Last rev. Jan 25, 1985 *
  4. ' * by:Don Moore                                 *
  5. ' *    P.O.Box 1405              AmigaBasic      *
  6. ' *    Coconut Grove, Fl      ie. Microsoft      *
  7. ' *    856-8216                                  *
  8. ' *                                              *
  9. ' ************************************************
  10.  
  11.  
  12. ' This program may be used with the keypad or mouse.
  13. '
  14. ' Selected number and adjacent numbers change simultaneously.
  15.  
  16. GOSUB Initialize
  17.  
  18. ' Set up matrix number's and
  19. ' get new game parameters
  20.  
  21. Newgame:
  22.      LOCATE 1,1
  23.      COLOR 2,1
  24.      PRINT PTAB(5);" All red to win   ";
  25.      Total        = 0
  26.      FOR Col    = 1 TO 3
  27.        FOR Row  = 1 TO 3
  28.          BlokColor(Row,Col) = INT(RND * 2)
  29.          Total              = Total + BlokColor(Row,Col)
  30.          Digit(Col,Row)     = Col + (3 - Row)  * 3
  31.        NEXT Row
  32.      NEXT Col
  33.      Choice   = 5     'initializes all 9 keys
  34.      GOTO Display
  35.  
  36.  Getnumber:
  37.      WHILE Total   <> WinningTotal
  38.         Choice   = INSTR(" 123456789",INKEY$) -1
  39.         IF  Choice   > 0 THEN Display
  40.         IF  MOUSE(0) = 0 THEN Getnumber
  41.  
  42.  GetMouseNumber:
  43.         x1   =     INT( (MOUSE(1) + 32) / 40)
  44.         y1   = 3 - INT( (MOUSE(2) +  3) / 15)
  45.         IF MOUSE(0) <> 0 THEN GetMouseNumber
  46.         IF ((x1 > 0) AND (x1 < 4)) AND ((y1 > -1) AND (y1 < 3)) THEN
  47.           Choice   = (( 3 * y1) +x1)
  48.           GOTO Display
  49.         END IF
  50.         GOTO Getnumber
  51.  
  52.  Display:
  53.        FOR Row   = (( Choice MOD 3) > 0 )+2 TO ((( Choice+2 ) MOD 3 ) = 0) +3
  54.          FOR Col = ( Choice > 3 )+2 TO ( Choice > 6 ) + 3
  55.             BlokColor(Row,Col) = (NOT BlokColor(Row,Col)) + 2
  56.             Newcolor           = BlokColor(Row,Col) + 2
  57.             Total              = Total + BlokColor(Row,Col) * 2 -1
  58.             HorPos             = Row * 40 -25
  59.             VerPos             = Col * 16 -2
  60.             LINE(HorPos,VerPos)-STEP(BlokWdth,BlokHgt),Newcolor,bf
  61.             LOCATE Col * 2 +1, Row * 5 -2
  62.             COLOR BlokColor(Row,Col),Newcolor
  63.             PRINT Digit(Row,Col);
  64.          NEXT Col
  65.        NEXT Row
  66.        GOTO Getnumber
  67.    WEND
  68.  
  69.  ' Win routine, i.e. Total red buttons = 9
  70.       COLOR  3,1
  71.       LOCATE 1,1
  72.       PRINT PTAB(5);"You are a winner ";
  73.       FOR i = 1 TO 7
  74.           SOUND i*400+500 ,.5
  75.       NEXT i
  76.       FOR i = 1 TO 2000: NEXT i
  77.       GOTO Newgame
  78.  
  79.  
  80.  Initialize:
  81.  'Darken screen
  82.       FOR j = 0 TO 3
  83.         PALETTE j,0,0,0
  84.       NEXT j
  85.  
  86.  ' Constants
  87.       DEFINT a-z
  88.       BlokWdth     = 26
  89.       BlokHgt      = 10
  90.       WinningTotal = 9
  91.       DigitColor   = 1
  92.       RANDOMIZE TIMER
  93.  
  94.       WINDOW 1,"Nutty 9",(10,10)-(147,73),30
  95.       PALETTE 0,0,.4,.6
  96.       PALETTE 1,1,1,1
  97.       PALETTE 2,0,0,0
  98.       PALETTE 3,.93,.2,0
  99.  
  100.  ' Background frame
  101.          LINE(0,0)-(137,63),1,bf
  102.          LINE(1,8)-(136,62),2,bf
  103.          LINE(7,11)-(130,59),1,bf
  104.          LINE(4,8)-(135,8),0
  105.          LINE(135,8)-(136,61),0,bf
  106.          LINE(5,10)-(6,60),0,bf
  107.          LINE-(132,60),0
  108.  
  109.      'Make keypad
  110.          DIM b%(500)
  111.          GOSUB MakeKey
  112.          GET(10,12)-(47,26),b%
  113.          FOR i= 0 TO 2
  114.              FOR j= 0 TO 2
  115.                  PUT(j*40+10,i*16+12),b%,PSET
  116.              NEXT j
  117.          NEXT i
  118.          RETURN  ' End of Initialize
  119.  
  120.  MakeKey:
  121.      LINE(10,12)-(47,26),2,bf
  122.      LINE(12,12)-(45,12),0
  123.      LINE-(45,25),0
  124.      LINE(13,14)-(13,25),0
  125.      LINE-(41,25),0
  126.      RETURN
  127.